home *** CD-ROM | disk | FTP | other *** search
/ Young Minds / Young Minds Interactive CD-ROM.ISO / nethack / makefile.2ps < prev    next >
Encoding:
Makefile  |  1988-09-06  |  7.3 KB  |  265 lines

  1. Article 1915 of rec.games.hack:
  2. Path: bloom-beacon!husc6!uwvax!rutgers!iuvax!silver!creps
  3. From: creps@silver.bacs.indiana.edu (Steve Creps)
  4. Newsgroups: rec.games.hack
  5. Subject: PC NetHack makefiles
  6. Keywords: makefiles compiling
  7. Message-ID: <551@silver.bacs.indiana.edu>
  8. Date: 21 Dec 87 05:05:00 GMT
  9. Reply-To: creps@silver.UUCP (Steve Creps)
  10. Organization: Indiana University Computer Science Department
  11. Lines: 250
  12.  
  13.  
  14.    Here is my makefile stuff for PC NetHack. It works with NDmake 4.3
  15. and contains four files. makefile is the makefile for NetHack.
  16. linkit.bat is a batch file to link it, and nethack.lnk is used by
  17. linkit.bat. Finally there is another makefile for creating termlib.lib.
  18. Hope this comes in handy for someone.
  19.  
  20. -    -    -    -    -    -    -    -    -
  21. Steve Creps on the VAX 8650 running Ultrix 2.0-1 at Indiana University.
  22.     creps@silver.bacs.indiana.edu
  23. "F-14 Tomcat! There IS no substitute."
  24.  
  25.  
  26.  
  27. makefile
  28. #
  29. #      SCCS Id: @(#)Makefile.pc        2.2
  30. #     Makefile for NetHack (PC) version 1.0 written using
  31. #    Microsoft(tm) "C" v3.0 or better.
  32. # Large memory model, register bug, remove stack probes:
  33. CC = msc
  34. LINK = link
  35. MODEL = L
  36. CFLAGS = /A$(MODEL) /DREGBUG /DLINT_ARGS /Ot /Gt48
  37. LIBS = l:\
  38. LFLAGS =
  39. SETARGV = $(LIBS)$(MODEL)SETARGV
  40.  
  41. # The game name
  42. GAME = nethack
  43.  
  44. # The game directory
  45. GAMEDIR = c:\games\nethack
  46.  
  47. # All object modules
  48. OBJS = o\decl.obj o\apply.obj o\bones.obj o\cmd.obj o\do.obj o\dothrow.obj \
  49.     o\do_name.obj o\do_wear.obj o\dog.obj o\dogmove.obj o\eat.obj \
  50.     o\end.obj o\engrave.obj o\fight.obj o\fountain.obj o\hack.obj \
  51.     o\invent.obj o\lev.obj o\pcmain.obj o\makemon.obj o\mhitu.obj \
  52.     o\mklev.obj o\mkmaze.obj o\mkobj.obj o\mkshop.obj o\mon.obj \
  53.     o\monmove.obj o\monst.obj o\o_init.obj o\objnam.obj o\options.obj \
  54.     o\pager.obj o\polyself.obj o\potion.obj o\pray.obj o\pri.obj \
  55.     o\prisym.obj o\read.obj o\rip.obj o\rumors.obj o\save.obj \
  56.     o\search.obj o\shk.obj o\shknam.obj o\sit.obj o\spell.obj o\steal.obj \
  57.     o\termcap.obj o\timeout.obj o\topl.obj o\topten.obj o\track.obj \
  58.     o\trap.obj o\pctty.obj o\pcunix.obj o\u_init.obj o\vault.obj \
  59.     o\wield.obj o\wizard.obj o\worm.obj o\worn.obj o\write.obj o\zap.obj \
  60.     o\version.obj o\rnd.obj o\alloc.obj o\msdos.obj
  61.  
  62. .c.obj:; $(CC) $*.c, o\$*.obj $(CFLAGS);
  63. .c.exe:;
  64.     $(CC) $*.c, o\$*.obj $(CFLAGS);
  65.     $(LINK) o\$*.obj $(SETARGV), $@,, $(LIBS) $(LFLAGS);
  66.  
  67. # The main target
  68. #
  69. $(GAME) : $(GAME).exe
  70.  
  71. $(GAME).exe : $(GAMEDIR)\$(GAME).exe
  72.  
  73. $(GAMEDIR)\$(GAME).exe : $(OBJS)
  74.     - .\linkit
  75.  
  76. #    variable auxilary files.
  77. #
  78. VARAUX = $(GAMEDIR)\data $(GAMEDIR)\rumors
  79.  
  80. install : $(GAMEDIR)\$(GAME).exe $(VARAUX)
  81.     - exepack $(GAME).exe $(GAMEDIR)\$(GAME).exe
  82.     - exemod $(GAMEDIR)\$(GAME).exe /max 1
  83.  
  84. clean :
  85.     erase $(GAME)
  86.  
  87. spotless : clean
  88.     erase o\*.obj
  89.  
  90. #    Other dependencies
  91. #
  92. o :
  93.     mkdir o
  94.  
  95. RUMORFILES= rumors.bas rumors.kaa rumors.mrx
  96.  
  97. makedefs : makedefs.exe
  98.  
  99. o\makedefs.obj : makedefs.c config.h
  100.  
  101. o\alloc.obj : alloc.c
  102.  
  103. makedefs.exe :  o\makedefs.obj o\alloc.obj
  104.     $(LINK) o\makedefs.obj o\alloc.obj;
  105.  
  106. rumors :  config.h $(RUMORFILES) makedefs.exe
  107.     makedefs -r
  108.  
  109. $(GAMEDIR)\rumors : rumors
  110.     mv rumors $(GAMEDIR)
  111.  
  112. data :  config.h data.bas makedefs.exe
  113.     makedefs -d
  114.  
  115. $(GAMEDIR)\data : data
  116.     mv data $(GAMEDIR)
  117.  
  118. hack.h :  config.h objclass.h monst.h gold.h trap.h obj.h flag.h rm.h \
  119.     permonst.h onames.h spell.h extern.h you.h
  120.     touch hack.h
  121.  
  122. objects.h :  config.h objclass.h
  123.     touch objects.h
  124.  
  125. onames.h :  config.h objects.h makedefs.exe
  126.        makedefs -o
  127.  
  128. extern.h : config.h
  129.     touch extern.h
  130.  
  131. #    Below is a kludge.  date.h should actually depend on any source
  132. #    module being changed. (but hack.h is close enough for most).
  133. #
  134. date.h :  hack.h makedefs.exe
  135.        makedefs -D
  136.  
  137. trap.h :  config.h makedefs.exe
  138.        makedefs -t
  139.  
  140. o\pcmain.obj : pcmain.c hack.h
  141. o\pctty.obj : pctty.c hack.h
  142. o\pcunix.obj : pcunix.c hack.h mkroom.h
  143. o\decl.obj :  hack.h mkroom.h decl.c
  144. o\apply.obj :  hack.h edog.h mkroom.h apply.c
  145. o\bones.obj :  hack.h bones.c
  146. o\hack.obj :  hack.h hack.c
  147. o\cmd.obj :  hack.h func_tab.h msdos.h cmd.c
  148. o\do.obj :  hack.h do.c
  149. o\do_name.obj :  hack.h do_name.c
  150. o\do_wear.obj :  hack.h do_wear.c
  151. o\dog.obj :  hack.h edog.h mkroom.h dog.c
  152. o\dogmove.obj :  hack.h mfndpos.h dogmove.c
  153. o\dothrow.obj :  hack.h dothrow.c
  154. o\eat.obj :  hack.h eat.c
  155. o\end.obj :  hack.h end.c
  156. o\engrave.obj :  hack.h engrave.c
  157. o\fight.obj :  hack.h fight.c
  158. o\fountain.obj :  hack.h fountain.c
  159. o\invent.obj :  hack.h wseg.h invent.c
  160. o\ioctl.obj :  config.h ioctl.c
  161. o\lev.obj :  hack.h mkroom.h wseg.h lev.c
  162. o\makemon.obj :  hack.h makemon.c
  163. o\mhitu.obj :  hack.h mhitu.c
  164. o\mklev.obj :  hack.h mkroom.h mklev.c
  165. o\mkmaze.obj :  hack.h mkroom.h mkmaze.c
  166. o\mkobj.obj :  hack.h mkobj.c
  167. o\mkshop.obj :  hack.h mkroom.h eshk.h mkshop.c
  168. o\mon.obj :  hack.h mfndpos.h mon.c
  169. o\monmove.obj :  hack.h mfndpos.h monmove.c
  170. o\monst.obj :  hack.h eshk.h monst.c
  171. o\o_init.obj :  config.h objects.h onames.h o_init.c
  172. o\objnam.obj :  hack.h objnam.c
  173. o\options.obj :  config.h hack.h options.c
  174. o\pager.obj :  hack.h pager.c
  175. o\polyself.obj :  hack.h polyself.c
  176. o\potion.obj :  hack.h potion.c
  177. o\pray.obj :  hack.h pray.c
  178. o\pri.obj :  hack.h pri.c
  179. o\prisym.obj :  hack.h wseg.h prisym.c
  180. o\read.obj :  hack.h read.c
  181. o\rip.obj :  hack.h rip.c
  182. o\rumors.obj :  config.h rumors.c
  183. o\save.obj :  hack.h save.c
  184. o\search.obj :  hack.h search.c
  185. o\shk.obj :  hack.h mfndpos.h mkroom.h eshk.h shk.c
  186. o\shknam.obj :  hack.h shknam.c
  187. o\sit.obj :  hack.h sit.c
  188. o\spell.obj :  hack.h spell.c
  189. o\steal.obj :  hack.h steal.c
  190. o\termcap.obj :  config.h flag.h termcap.c
  191. o\timeout.obj :  hack.h timeout.c
  192. o\topl.obj :  hack.h topl.c
  193. o\topten.obj :  hack.h topten.c
  194. o\track.obj :  hack.h track.c
  195. o\trap.obj :  hack.h mkroom.h trap.c
  196. o\u_init.obj :  hack.h u_init.c
  197. o\vault.obj :  hack.h mkroom.h vault.c
  198. o\version.obj : hack.h date.h version.c
  199. o\wield.obj :  hack.h wield.c
  200. o\wizard.obj :  hack.h wizard.c
  201. o\worm.obj :  hack.h wseg.h worm.c
  202. o\worn.obj :  hack.h worn.c
  203. o\write.obj :  hack.h write.c
  204. o\zap.obj :  hack.h zap.c
  205. o\msdos.obj : msdos.h msdos.c
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212. linkit.bat
  213. echo on
  214. link @nethack.lnk,nethack.exe,nethack.map,ltermlib.lib /NOIG /STACK:0xf00 /SEGMENTS:400 /EXEPACK
  215.  
  216.  
  217.  
  218.  
  219.  
  220. nethack.lnk
  221. o\decl.obj o\apply.obj o\bones.obj o\cmd.obj +
  222. o\do.obj o\dothrow.obj o\do_name.obj o\do_wear.obj +
  223. o\dog.obj o\dogmove.obj o\eat.obj o\end.obj +
  224. o\engrave.obj o\fight.obj o\fountain.obj o\hack.obj +
  225. o\invent.obj o\lev.obj o\pcmain.obj o\makemon.obj +
  226. o\mhitu.obj o\mklev.obj o\mkmaze.obj o\mkobj.obj +
  227. o\mkshop.obj o\mon.obj o\monmove.obj o\monst.obj +
  228. o\o_init.obj o\objnam.obj o\options.obj o\pager.obj +
  229. o\polyself.obj o\potion.obj o\pray.obj o\pri.obj +
  230. o\prisym.obj o\read.obj o\rip.obj o\rumors.obj +
  231. o\save.obj o\search.obj o\shk.obj o\shknam.obj +
  232. o\sit.obj o\spell.obj o\steal.obj o\termcap.obj +
  233. o\timeout.obj o\topl.obj o\topten.obj o\track.obj +
  234. o\trap.obj o\pctty.obj o\pcunix.obj o\u_init.obj +
  235. o\vault.obj o\wield.obj o\wizard.obj o\worm.obj +
  236. o\worn.obj o\write.obj o\zap.obj o\version.obj +
  237. o\rnd.obj o\alloc.obj o\msdos.obj
  238.  
  239.  
  240.  
  241.  
  242. makefile (for termlib)
  243. #
  244. MODEL    =    L
  245. CFLAGS    =    /A$(MODEL) /DDGK
  246. #
  247. TSOURCES =    testtcp.c 
  248. LSOURCES =    tgetent.c tgetflag.c tgetnum.c tgetstr.c tgoto.c \
  249.         tputs.c isdigit.c fgetlr.c
  250. #
  251. TOBJECTS =    testtcp.obj
  252. LOBJECTS =    tgetent.obj tgetflag.obj tgetnum.obj tgetstr.obj \
  253.         tgoto.obj tputs.obj isdigit.obj fgetlr.obj
  254. #
  255. $(MODEL) : $(MODEL)termlib.lib
  256.  
  257. $(MODEL)termlib : $(MODEL)termlib.lib
  258.  
  259. $(MODEL)termlib.lib :    $(LOBJECTS)
  260.     lib $(MODEL)termlib.lib tgetent+tgetflag+tgetnum+tgetstr+tgoto+tputs+isdigit+fgetlr
  261.  
  262.  
  263.  
  264.